緊接著,我們就要來介紹 while、for 迴圈啦!但是在介紹之前,要先提到一些基本但常用的運算子。
Logic operator||
:或 (or)&&
:且 (and)!
:否 (not)
例如:if(a >= 10 && a <= 20)
亦即a
是在 10~20 之間,要特別注意的是,我們不能寫if(10 <= a <= 20)
,每一個條件都一定要分開來寫!
Self-assignment operatora += 1
:相當於 a = a + 1,也就是說新的a的值會等於舊的 a 的值再 +1。
同樣的邏輯也可以運用在-=
、*=
、/=
。
Increment / decrement operatora++
:相當於 a += 1,也就是 a = a + 1。a--
:相當於 a -= 1,也就是 a = a – 1。
接下來,我們就進入正題!
While 迴圈
執行流程如下:
檢查 condition,若符合就執行 statements
->檢查 condition,若符合就執行 statements
->檢查 condition,若符合就執行 statements
->檢查 condition,若符合就執行 statements
->檢查 condition,若符合就執行 statements
-> ……,直到不符合 condition才會停止執行。
舉一個老師的例子:
以上的程式碼會不斷執行,每跑一圈 i 就會 +1,直到 i = 100,當 i = 101 時,while迴圈中的 statements 便不會執行而輸出最終 sum 的結果:5050。
這邊再補充一點,有的時候我們不知道要輸入進多少筆資料,不過只要有輸入就要進行一次的判斷之情況下,我們可以使用while (cin >> variable)
,只要有輸入就會回傳true
,因此這個迴圈就會被執行,之後會有例題讓大家更熟悉這個用法。
For 迴圈
寫一個for迴圈需要有三個要素:
init:初始化一個 counter variable
cond:設立一個 counter variable的條件,只要符合這個迴圈就會執行
some:每跑一圈會如何調整 counter variable
statements:這個迴圈要做甚麼事
我們可以將前面舉的 while 的例子改成 for 的方式來寫:
那以上就差不多是基本語法 if、while、for 的介紹啦!最後,要再提到兩個專門用在迴圈中的工具,就是continue
與break
!
Continue
當continue
被執行的時候,這一圈迴圈的 statements 就不會被執行,舉個最簡單的例子:
這時候我們會發現輸出的結果為:
我們可以看出來,5
並沒有被輸出,也就是說,當 i = 5 的時候,並不會執行任何事情,會直接跳到 i = 6。
Break
當執行到break
的時候,會直接跳出迴圈。我們一樣拿上面的例子來看,不過將continue
改成break
:
輸出結果:
也就是說,當 i = 5 時,就跳出迴圈而不再執行了,因此只會輸出到 4。